The use of computers, especially personal computers (PCs), is widespread. Increasingly, PCs are equipped with a modem, which allows a user to link one computer with another for purposes of sharing data. Modems modulate digital data from one computer to an analog audio signal for transmission to another computer via the publicly switched telephone network (PSTN). Modems receiving the analog audio signal then demodulate the signal and reconstruct the digital data.
A modem may be a device external to a PC, which is then connected to one of the serial communications ports on the PC. Alternatively, modem circuitry may be included within the PC, typically on a printed circuit board or card connected to one of the PC bus slots, such as an industry standard architecture (ISA) bus slot. Both external and internal modems traditionally include a number of well-known circuits, such as a universal asynchronous receiver/transmitter (UART), a digital signal processor (DSP), a microcontroller, a coder/decoder (CODEC), and a phone line interface such as data access arrangement (DAA) circuitry.
With the availability of high-speed processors such as the Pentium.RTM. processor, software-based modems have been made possible by the DSP-like instruction sets executable by these processors. Thus, much of the DSP functionality can be replaced by software execution, thereby reducing the hardware requirements for the modem itself. Software-based modems require a circular buffer, or memory arranged as a first-in-first-out (FIFO) memory, for both the transmitted and received data. Such FIFOs are required because the speed at which data is transmitted or received by a modem is typically greater than the data processing speed of a PC running a commercially available operating system, such as Windows NT or Windows 95.
Circuitry associated with currently available software-based modems is typically coupled with the ISA bus, although newly available modems are available for coupling with the peripheral component interconnect (PCI) bus. These modems require application specific integrated circuitry (ASIC) coupling the modem CODEC with the associated bus, providing the necessary control signals and data routing to match the CODEC and bus protocols. The ASIC also couples the CODEC with a FIFO, which may or may not be integrated within the ASIC.
Currently available software-based modems, while improving modem performance relative to traditional external and internal hardware-based modems, still do not fully exploit the capability of today's high-speed processors.